#ifndef __UNIT_VIEW_H__
#define __UNIT_VIEW_H__

#include "gofgame/common/ui/ScrollContainer.h"
#include "gofgame/dungeonkeeper/game/unit/UnitManager.h"
#include "gofgame/common/Iterator.h"
#include <list>
#include <vector>
#include <set>

namespace gofgame {
	namespace dungeonkeeper {
		namespace ui {

			using namespace gofgame::common::ui;
			using namespace std;

			class UnitView : public ScrollContainer {
			public:
				virtual bool init() _override;

				/*
				 * Fuck STL!!!! 
				 * I have to write these three methods
				 * actually, I want 
				 * void setDataSource(const collection<UnitElementViewInfo> &vevis);
				 */
				void setDataSource(const set<UnitElementViewInfo> &uevis);
				void setDataSource(const vector<UnitElementViewInfo> &uevis);
				void setDataSource(const list<UnitElementViewInfo> &uevis);

				virtual void setDataSource(Ref<Iterator<UnitElementViewInfo>> iterator);
			};
		}
	}
}

#endif //__UNIT_VIEW_H__
